package com.zeng.mapper.restmodel;

import com.alibaba.fastjson.JSONObject;
import com.zeng.bean.restmodel.RestQueryParam;
import com.zeng.bean.restmodel.RestTableCreateParam;
import com.zeng.bean.restmodel.RestTableFieldInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * rest模型数据库调用接口
 */
@Mapper
public interface RestModelMapper {

    //region DQL DML 操作

    /**
     * 通用查询接口
     */
    List<JSONObject> select(RestQueryParam param);

    /**
     *通用插入接口
     */
    int insert(RestQueryParam param);

    /**
     *通用更新接口
     */
    int update(RestQueryParam param);

    /**
     * 通用删除接口
     */
    int delete(RestQueryParam param);

    //endregion

    //region DDL 操作

    /**
     * 创建表
     */
    void createTable(RestTableCreateParam param);

    /**
     * 删除表
     */
    void dropTable(String tableName);

    /**
     * 查询表结构
     */
    List<RestTableFieldInfo> selectTableFields(String tableName);

    /**
     * 查询表是否存在
     */
    Boolean existTable(String tableName);

    //endregion
}
